68 research outputs found
Lazy Kleene Algebra
We propose a relaxation of Kleene algebra by giving up strictness and right-distributivity of composition. This allows the subsumption of Dijkstra's computation calculus, Cohen's omega algebra and von Wright's demonic refinement algebra. Moreover, by adding domain and codomain operators we can also incorporate modal operators. Finally, it is shown that the predicate transformers form lazy Kleene algebras again, the disjunctive and conjunctive ones even lazy Kleene algebras with an omega operation
Modal Kleene algebra and applications - a survey
Modal Kleene algebras are Kleene algebras with forward and backward modal operators defined via domain and codomain operations. They provide a concise and convenient algebraic framework that subsumes various other calculi and allows treating quite a variety of areas. We survey the basic theory and some prominent applications. These include, on the system semantics side, Hoare logic and PDL (Propositional Dynamic Logic), wp calculus and predicate transformer semantics, temporal logics and termination analysis of rewrite and state transition systems. On the derivation side we apply the framework to game analysis and greedy-like algorithms
Systematic derivation of pointer algorithms
We show that the well-known unfold/fold transformation strategy also is fruitful for the(formal) derivation of correct pointer algorithms. The key that allows this extension is the algebra of partial maps which allows convenient description and manipulation of pointer structures at the functional level
Assertions and recursions
We provide an algebraic description of subtypes and the way they propagate through recursive functions. By abstracting from the concrete domain of functions or relations we obtain a framework which is independent of strict or non-strict, deterministic or non-deterministic semantics. Applications include efficiency increasing simplification of recursions as well as proofs about recursions by noetherian induction, such as termination proofs
Ideal stream algebra
We provide some mathematical properties of behaviours of systems, where the individual elements of a behaviour are modeled by ideals, ie. downward closed directed subsets of a suitable partial order. It is well-known that the associated ideal completion provides a simple way of constructing algebraic cpos. An ideal can be viewed as a set of consistent finite or compact approximations of an object which itself may be infinite. A special case is the domain of streams where the finite approximations are the finite prefixes of a stream. We introduce a special way of characterising behaviours through sets of relevant approximations. This is a generalisation of the technique we have used earlier for the case of streams. Given a subset P of a partially orderered set M, we define ide P as the set of downward closures of the directed subsets of P. We prove a number of distributivity and monotonicity laws for ide and related operators. They are the basis for correct refinement of specifications into implementations. Various small examples illustrate that the operators lead to very concise while quite clear specifications. Finally, we give a characterisation of safety and liveness and generalise the Alpern/Schneider decomposition lemma to arbitrary domains. An extended example concerns the specification and transformational development of an asynchronous bounded queue
Towards pointer algebra
We show that the well-known unfold/fold transformation strategy is also fruitful for the (formal) derivation of correct pointer algorithms. The key to this extension is an algebra of partial maps which allows convenient description and manipulation of pointer structures at the functional level
Formal derivation of pointer algorithms
We show that the well-known unfold/fold transformation strategy also is fruitful for the (formal) derivation of correct pointer algorithms. The key that allows this extension is the algebra of partial maps which allows convenient description and manipulation of pointer structures at the functional level
Are anamorphisms reasonable abstractions?
In calculational derivations of pointer algorithms the concept of a reasonable abstraction function has proved to be of centralimportance. A function from pointer structures to some other domain is called reasonable if it only depends on the reachable part of the store. For reasonable functions we can reduce questions about invariance of certain parts of objects to an analysis of (non-)reachability in the pointer structure. In this way we can prove a number of transformation laws once and for all for all types of pointer structures. In the present paper we show that all abstraction functions with an anamorphic recursive definitionare reasonable, so that our laws apply for them. The approach copes also with cyclic strctures; among others, we give abstraction functionsfor cyclic lists and threaded trees. By tuning the degree of abstraction we can give simple specifications for routines that are to update pointer structures in situ
Deductive hardware design: a functional approach
The goal of deductive design is the systematic construction of a system implementation starting from its behavioural specification according to formal, provably correct rules. We use Haskell to formulate a functional model of directional, synchronous and deterministic systems with discrete time. The associated algebraic laws are then employed in deductive hardware design of basic combinational and sequential circuits as well as a brief account of pipelining. With this we tackle several of the IFIP WG 10.5 benchmark verification problems. Special emphasis is laid on parametrization and re-usability aspects
- …